/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.actions.dispositivos;

import com.mapping.Departamento;
import com.mapping.Dispositivo;
import com.mapping.Modelo;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;

/**
 *
 * @author Andres
 */
public class ListaDispositivos {
    public static List<DispositivoDetalle> getLista(int idModelo){
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("inventarios");
        EntityManager em = emf.createEntityManager();
        EntityTransaction tx = em.getTransaction();
        tx.begin();
        Modelo m = (Modelo)em.createNamedQuery("Modelo.findByIdModelo").setParameter("idModelo", idModelo).getSingleResult();
        List<Dispositivo> disps = (List<Dispositivo>) m.getDispositivoCollection();
        List<DispositivoDetalle> dispositivos= new ArrayList<DispositivoDetalle>();
        for(Dispositivo disp : disps){
            DispositivoDetalle dispositivo = new DispositivoDetalle();
            dispositivo.setIdDisp(disp.getIdDisp());
            dispositivo.setNoserie(disp.getNoserie());
            dispositivo.setEstado(disp.getEstado());
            dispositivo.setLocalizacion(disp.getLocalizacion());
            dispositivo.setIdModelo(m.getIdModelo());
            dispositivo.setModelo(m.getModelo());
            dispositivo.setIdMarca(m.getIdMarca().getIdMarca());
            dispositivo.setMarca(m.getIdMarca().getMarca());
            dispositivo.setIdTipo(m.getIdTipo().getIdTipo());
            dispositivo.setTipo(m.getIdTipo().getTipo());
            List<Departamento> depas = (List<Departamento>)disp.getDepartamentoCollection();
            dispositivo.setIdDepartamento(depas.get(0).getIdDepartamento());
            dispositivo.setDepartamento(depas.get(0).getNombre());
            dispositivos.add(dispositivo);
        }
        tx.commit();
        em.close();
        return dispositivos;
    }   
    
     public static DispositivoDetalle getDispositivoDetalle(Dispositivo comp){
        DispositivoDetalle dd = new DispositivoDetalle();
        dd.setIdDisp(comp.getIdDisp());
        dd.setNoserie(comp.getNoserie());
        dd.setEstado(comp.getEstado());
        dd.setLocalizacion(comp.getLocalizacion());
        dd.setIdModelo(comp.getIdModelo().getIdModelo());
        dd.setModelo(comp.getIdModelo().getModelo());
        dd.setIdMarca(comp.getIdModelo().getIdMarca().getIdMarca());
        dd.setMarca(comp.getIdModelo().getIdMarca().getMarca());
        dd.setIdTipo(comp.getIdModelo().getIdTipo().getIdTipo());
        dd.setTipo(comp.getIdModelo().getIdTipo().getTipo());
        List<Departamento> depas = (List<Departamento>)comp.getDepartamentoCollection();
        dd.setIdDepartamento(depas.get(0).getIdDepartamento());
        dd.setDepartamento(depas.get(0).getNombre());
        return dd;
    }
}
